Mark Compact GC
概要
マークフェーズとコンパクションフェーズからなる
マークフェーズはMarkSweepGCのものと全く同じ
コンパクションフェーズでは生きているオブジェクトの詰め直し(コンパクション)を行う
ヘッダに格納するもの
forwardingポインタ
Lisp2アルゴリズム
手順
1. forwardingポインタの設定
2. ポインタの更新
3. オブジェクトの移動
メリット
デメリット
Two-Fingerアルゴリズム
手順
1. オブジェクトの移動
2. ポインタの更新
メリット
デメリット
テーブルアルゴリズム
手順
1. オブジェクト(郡)の移動及びブレイクテーブルの構築
2. ポインタの更新
メリット
デメリット
ImmixGC
ヒープ領域を一定サイズの「ブロック」にわけ、そのブロックをさらに一定サイズの「ライン」にわける
このライン単位でゴミを回収していく
手順
メリット
デメリット